#include <stdexcept>
#include "handle_line.h"
#include "find_val.h"

void handle_line(std::string& line_cur, std::vector<std::string>& ntcs, std::ofstream& file_target){
	/** 
	 * 循环：依次找ntcs中的字段对应的值（温度亮度电流）
	 * 找到一个就push_back到保存的vector<int>
	 * 最后写入目的.csv
	 */
    std::vector<std::string> vals;
	size_t pos_cur=0;
	for(const std::string& ntc:ntcs){
		std::string val_str;
		val_str=find_val(line_cur, ntc);
		vals.push_back(val_str);
	}
	// 如果长度对不齐，证明log文件 or 解析出错
	if(ntcs.size()!=vals.size()){
        throw std::invalid_argument("解析字段数和读到的值长度不相等");
	}
	file_target<<vals[0];
	for(int i=1; i<vals.size(); i++){
		file_target<<","<<vals[i];
	}
    file_target<<std::endl;
}
